package com.hexiang;

import com.hexiang.entity.User;
import com.hexiang.entity.UserRequest;

import java.util.concurrent.CompletableFuture;

/**
 * Dubbo示例服务接口
 *
 * @author h01463
 * @dubbo
 * @service DemoService
 */
public interface DemoService {
    /**
     * sayHello
     *
     * @param name 用户名
     * @return
     * @mock zhangsan
     */
    String sayHello(String name);

    /**
     * sayHelloAsync
     *
     * @param name 用户名
     * @return
     * @mock zhangsan
     */
    CompletableFuture<String> sayHelloAsync(String name);

    /**
     * sayHelloCompletableFuture
     *
     * @param name 用户名
     * @return
     * @mock zhangsan
     */
    CompletableFuture<String> sayHelloCompletableFuture(String name);

    /**
     * getUser
     *
     * @param request com.hexiang.entity.UserRequest
     * @return
     */
    User getUser(UserRequest request);

    /**
     * timeout
     *
     * @param name 用户名
     * @return
     * @mock zhangsan
     */
    String timeout(String name);

    /**
     * asyncTimeout
     *
     * @param name 用户名
     * @return
     * @mock zhangsan
     */
    CompletableFuture<String> asyncTimeout(String name);

    /**
     * err
     *
     * @param name 用户名
     * @return
     * @mock zhangsan
     */
    String err(String name);
}